package com.klangner.go.app.rules;


import com.klangner.game.board.IBoard;
import com.klangner.game.board.IPlayer;
import com.klangner.game.board.Move;
import com.klangner.go.app.strategy.AliceMoveSelector;
import com.klangner.go.app.strategy.AlphaBetaPruningGoStrategy;
import com.klangner.go.app.strategy.AtariGoEstimatorCho;


public class AlicePlayer extends Player{

  //----------------------------------------------------------------------------
  public AlicePlayer(int color) {
    super(color);
    this.strategy = new AlphaBetaPruningGoStrategy( color,
                                                   new AtariGoEstimatorCho(),
                                                   2,
                                                   new AliceMoveSelector());
  }

  //----------------------------------------------------------------------------
  // override Player's initPlayer method
  public void initPlayer() {}


  //----------------------------------------------------------------------------
  // override Player's move method
  protected Move move(BoardModel goPosition) {

    Move      nextMove;

    nextMove = strategy.chooseNextMove(goPosition);

    return nextMove;

  }


  //----------------------------------------------------------------------------
  // Private members
  IPlayer engine;

}